import axios from "axios";
import { ElMessage } from "element-plus";
import { getToken, getUsername, removeToken, removeUsername } from "./cookie";
import router from "@/router";
console.log(process.env.VUE_APP_API);
console.log(process.env.VUE_APP_DEV_TARGET);


// 创建一个实例
const service = axios.create({
    baseURL: process.env.VUE_APP_API, // 请求地址
    timeout: '5000', // 设置超时的时间为5s
});

// 添加请求拦截器
service.interceptors.request.use(function (config) {
    if (!getToken()) {
        config.headers["Token"] = getToken();   // 携带token         这里携带的token名称和username是与后端协商好的
    }
    if (!getUsername()) {
        config.headers["Username"] = getUsername();  // 携带用户名
    }
    console.log(config);
    // 在请求发送之前做些什么
    return config;
}, function(error) {
    // 请求错误时候执行的内容
    return config;
})

// 添加响应拦截器
service.interceptors.response.use(function (response) {
    // 对响应数据做处理
    console.log(JSON.stringify(response.data) + 'response.data');
    const data = response.data;
    if (data.resCode == 0) {
        return Promise.resolve(data);
    } else {
        ElMessage({
            message: data.message,
            type: 'error'
        })
        return Promise.reject(data);
    }
}, function (error) {
    
    // 响应错误的时候做处理
    console.log(error + 'error.request');
    if (error.resCode === 1010) {
        router.replace({
            name: "Login"
        })
        removeToken();
        removeUsername();
    }
    var errorData = JSON.stringify(error);
    console.log(errorData + 'errorData')
    // if (errorData.message) {
    //     ElMessage({
    //         message: errorData.message,
    //         type: "error"
    //     })
    // }
    return Promise.reject(error);
});

// 暴露 service
export default service;
